/////////////////////////////////////////////////////////////////////////////
/*/	
 *	Creator:		Joshua C. Rouzer
 *	Title:			Particle Header
 *	Last Edited:	07/08/2013
 *	Summary:		
/*/
/////////////////////////////////////////////////////////////////////////////
#ifndef CPARTICLE_H
#define CPARTICLE_H
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include "CSGD_Direct3D.h"
class CEmitter;
class CParticle{
	bool m_bIsAlive;		//If Alive
	float m_fPosX;			//Position
	float m_fPosY;			//Position
	float m_fLife;			//Life
//Starting Information
	//float m_fStScale;		//Scale
	//float m_fStVelX;		//Velocity
	//float m_fStVelY;		//Velocity
	//float m_fStRot;		//Rotation
	//DWORD m_StColor;		//Color
//Current Information
	float m_fScale;			//Scale
	float m_fVelX;			//Velocity
	float m_fVelY;			//Velocity
	float m_fRot;			//Rotation
	int m_nAlpha;			//Color
	int m_nRed;				//Color
	int m_nGreen;			//Color
	int m_nBlue;			//Color
//Ending Information
	//float m_fEndScale;	//Scale
	//float m_fEndVelX;		//Velocity
	//float m_fEndVelY;		//Velocity
	//float m_fEndRot;		//Rotation
	//DWORD m_EndColor;		//Color
public:
	CParticle(CEmitter *_Owner, float _PosX, float _PosY, float _Life);
	CParticle();
	~CParticle();
	bool operator==(CParticle& pParticle);
	void Update(float dT, CEmitter *pOwner);
	void SetLife(float fTime){m_fLife = fTime;}
	//Accessors
	bool  Alive		()	{return m_bIsAlive;	}
	float GetPosX	()	{return m_fPosX;	}
	float GetPosY	()	{return m_fPosY;	}
	float GetScale	()	{return m_fScale;	}
	float GetVelX	()	{return m_fVelX;	}
	float GetVelY	()	{return m_fVelY;	}
	float GetRot	()	{return m_fRot;		}
	DWORD GetColor	()	{return D3DCOLOR_ARGB(m_nAlpha, m_nRed, m_nGreen, m_nBlue);}
	//Mutators
	void SetPosX	(float _v)	{m_fPosX  = _v;}
	void SetPosY	(float _v)	{m_fPosY  = _v;}
	void SetScale	(float _v)	{m_fScale = _v;}
	void SetVelX	(float _v)	{m_fVelX  = _v;}
	void SetVelY	(float _v)	{m_fVelY  = _v;}
	void SetRot		(float _v)	{m_fRot	  = _v;}
	void SetColorA	(int   _v)	{m_nAlpha = _v;}
	void SetColorR	(int   _v)	{m_nRed   = _v;}
	void SetColorG	(int   _v)	{m_nGreen = _v;}
	void SetColorB	(int   _v)	{m_nBlue  = _v;}
};
#endif